package com.zhudi.service;

import com.zhudi.model.entity.User;
import com.zhudi.model.entity.UserTeam;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zhudi.model.request.TeamJoinRequest;

import java.util.List;

/**
* @author 朱朱朱朱蒂
* @description 针对表【user_team(队伍表)】的数据库操作Service
* @createDate 2024-03-23 22:53:15
*/
public interface UserTeamService extends IService<UserTeam> {

    /**
     * 查询一个用户加入了多少队伍
     * @param userId 用户id
     * @return 加入队伍的数量
     */
    long getUserJoinedTeamNums(Long userId);

    /**
     * 获取队伍中的成员信息
     * @param teamId 队伍id
     * @return 成员信息
     */
    List<User> getTeamPlayer(Long teamId);


    /**
     * 检查用户是否已经加入队伍
     * @param teamId 队伍id
     * @param userId 用户id
     * @return 是true
     */
    Boolean isJoin(Long teamId,Long userId);


    /**
     * 加入队伍
     * @param teamJoinRequest 包含队伍id和密码的类
     * @param loginUserId 用户id
     * @return 成功、已加入返回true，
     */
    Boolean joinTeam(TeamJoinRequest teamJoinRequest, Long loginUserId);


    /**
     * 退出队伍
     * @param teamId 队伍id
     * @param loginUserId 用户id
     * @return 成功true
     */
    boolean quitTeam(Long teamId, Long loginUserId);


    /**
     * 解散队伍
     * @param teamId 队伍id
     * @param loginUserId 登录id
     * @return 成功true
     */
    boolean deleteTeam(Long teamId, Long loginUserId);
}
